Privilege Escalation

这一章节中我们讨论各种通过Beacon提权的方式 。

Elevate

  • 列出权限目录: elevate

  • 生成提权会话:elevate [module] [listener]

    界面操作如下:[session] -> Access ->Elevate

RunAsAdmin

  • 列出提权命令提示:runasadmin
  • 在已提权会话中运行指令:runasadmin [module] [command]

Elevate vs RunAsAdmin

  • elevate能够产生一个提权的会话,一些提权工具可以很容易执行并达到提权目的。
  • runasadmin可以使用自己的武器库进行,比如使用高权限运行一个exe文件,给目标发送命令,或者只是想执行一条powershell。使用session->Access->One-liner 可以生成一条powershell来生成一个新的会话。

Elevate Kit

Elevate Kit 是一个Aggressor脚本,将几个提权漏洞集成到Cobalt Strike中。下载地址:https://github.com/rsmudge/ElevateKit

具体使用方法如下:

  • Cobalt Strike -> Scripts,点击Load, 将elevate.cna加载到Cobalt Strike

  • 选择Interact ,在Beacon中输入elevate可以查看提权目录,新建一个监听器,使用ms15-051输入 elevate ms15-051 [listener name],获取system权限成功。

SharpUp

sharpup是一个用来扫描提权漏洞或者缺失安全配置项的工具,通过不同的利用方法进行提权。在Beacon中这样调用:execute-assembly /local/path/SharpUp.exe all

下载地址:https://github.com/GhostPack/SharpUp

  • 在Beacon中执行execute-assembly /local/path/SharpUp.exe all 后,发现VMTools服务可修改。

  • 生成一个EXE Payload,命名为vmtoolsd.exe

  • 将vmtoolsd.exe上传到目标服务器上,并修改该服务对应文件路径,重启服务后显示成功,然后在Beacon中连接监听器端口,system权限主机上线成功。

Spawn As

spawn as使用指定的凭证作为另一个用户生成一个会话。 打开方式:[session]->Access-Spawn As

Kerberoasting

  • 一些服务是以域账户作为服务登陆账户,这些账户往往权限比较高,甚至有的时候是域管理员身份。
  • kerberos认证中,服务账户与DC服务器中一个唯一的SPN(配置服务主体名称)关联。
  • kerberos票据中部分使用了用户密码哈希值生成。
  • 攻击思路:

    • 用SPNs在域控制器中查询账户 。
    • 为关联服务向授权服务器申请一个票据 。
    • 破解票据恢复密码。
  • 攻击步骤:

    • 在Beacon中 execute-assembly /path/to/rubeus.exe kerberosst 得到一个域账号及生成的票据。

    • 下载生成的票据文件,使用hashcat工具破解得到密码。

    • 使用sqawnas 生成另外一个会话。

提权问题集

  • 没有权限,这种情况下需要查看是否有提权漏洞存在并利用。
  • 当前用户 是administrator,但是没有相应权限
  • 已经提权但是操作有限制。

UAC

用户账户控制(User Account Control)在Windows Vista及更高版本操作系统中采用的一种控制机制,其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,已达到帮助组织恶意程序损坏系统的效果。在操作系统中有三个权限,高权限(管理员权限),中权限(普通用户权限),低权限(限制权限)。在本地的管理员也会执行两种权限,一个是普通用户,另外一个是管理员权限。使用whoami /groups可以查看当前用户属于哪个权限组。那么如何绕过UAC,以下是几种方法:

  • 使用elevate uac-teken-duplication [listener],这个提权漏洞在win10 RS5的版本中已经被修复
  • runasadmin uac-cmstplua [command]
  • 其他elevate kit的方法

首先生成一个Powersehll one-liner ,然后使用runasadmin uac-cmstplua [one-liner] ,绕过uac成功。

Access Token

当用户登录后,系统创建一个令牌(Access Token),里边包含了用户和用户组信息、登录进程返回的SID和由本地安全策略分配给用户和用户的安全组的特权列表,系统使用令牌控制用户可以访问哪些安全对象,并控制用户执行相关系统操作的能力。令牌会一直存在,直到系统被重启。

令牌权限:

  • whoami /priv查看当前令牌的权限。

  • 在Beacon中使用getprivs可以获得尽可能多的权限。 首先查看当前权限,大部分为disable,使用getprivs后再查看当前权限,大部分已经是enable状态。

  • 特权包括:SeCreateTokenPrivilege、SeDebugPrivilege、SeTcbPrivilege等 。

获取System权限

  • System权限是系统最高权限。

  • 在Beacon中使用getsystem模拟System账户的令牌。

  • 使用elevate svc-exe [listener] 在目标机器上启动一个服务来产生一个新会话,拥有System权限。

Credential and Hash

[session]->Access-Dump Hashes,或者在Beacon中使用hashdump命令将目标机器中的哈希转存,logopasswords命令将使用mimikatz为登录到当前系统的用户读取明文密码和哈希。logopasswords命令与[session]->Access->Run Mimikatz相同。 使用dcsync [domain]从域控中提取所有账户密码哈希。所有的凭证在View->Credentials中查看。

Mimikatz

  • mimikatz [command] [arguments] 执行一个mimikatz命令
  • mimikatz ![command] [arguments] 使用System权限执行mimikatz命令
  • mimikatz @[command] [arguments] 使用当前令牌执行mimikatz命令
零组资料文库 all right reserved,powered by 0-sec.org未经授权禁止转载 2020-01-22 23:35:26

results matching ""

    No results matching ""